<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui">

    <ui:composition template="/plantillas/plantillaPrincipal.xhtml">
        <ui:define name="contenido">
            <f:view>
                <h:form id="formSeguimientoOC">
                    <p:panel style="width:100%;margin: 10px auto;">
                        <f:facet name="header" >
                            <p:outputPanel layout="block" >
                                <h:outputLabel value="Seguimiento Orden de Servicio"  />
                                <p:commandButton  value="Imprimir" type="button" icon="ui-icon-print" style="font-size: 10px;float: right">  
                                    <p:printer target="panelDetalle"  />    
                                </p:commandButton >
                            </p:outputPanel>
                        </f:facet>
                        
                        
                        <p:panelGrid style="width:800px;margin: 10px auto;" id="panelDetalle">
                            <p:row>
                                <p:column>
                                    <h:outputText value="Nº DE ORDEN DE SERVICIO: " class="lblForm"/>
                                </p:column>
                                <p:column>
                                    <h:outputText value="#{BKOrdenServicioSeg.ordenServicioSeg.codigo}" />
                                </p:column>

                            </p:row>
                            <p:row>
                                <p:column>
                                    <h:outputText value="PROVEEDOR: " class="lblForm"/>
                                </p:column>
                                <p:column>
                                    <h:outputText value="#{BKOrdenServicioSeg.ordenServicioSeg.idProveedor.razonSocial}" />
                                </p:column>

                            </p:row>
                            <p:row>
                                <p:column>
                                    <h:outputText value="FECHA DE EMISIÓN: " class="lblForm"/>
                                </p:column>
                                <p:column>
                                    <h:outputText value="#{BKOrdenServicioSeg.ordenServicioSeg.fechaEmision}" >
                                        <f:convertDateTime pattern="dd/MM/yyyy" />
                                    </h:outputText>    
                                </p:column>

                            </p:row>
                            <p:row>
                                <p:column>
                                    <h:outputText value="PLAZO DE ENTREGA: " class="lblForm"/>
                                </p:column>
                                <p:column>
                                    <h:outputText value="#{BKOrdenServicioSeg.ordenServicioSeg.plazoEntrega}" >
                                        <f:convertDateTime pattern="dd/MM/yyyy" />
                                    </h:outputText>  
                                </p:column>

                            </p:row>

                            <p:row>
                                <p:column>
                                    <h:outputText value="FECHA DE CIERRE: " class="lblForm"/>
                                </p:column>
                                <p:column>
                                    <p:calendar id="calendarCierre" value="#{BKOrdenServicioSeg.ordenServicioSeg.fechaCierre}" locale="es"
                                                pattern="dd/MM/yyyy" mindate="#{BKOrdenServicioSeg.ordenServicioSeg.fechaCierre}" required="true"
                                                disabled="#{BKOrdenServicioSeg.ordenServicioSeg.estadoOrden eq 'A'?false:true}" navigator="true" >
                                    </p:calendar>
                                </p:column>

                            </p:row>

                            <p:row>
                                <p:column colspan="2">

                                    <p:dataTable id="tablaDetalleDespacho" var="detalle"  selectionMode="single" 
                                                 rowKey="#{detalle.id}"  selection="#{BKOrdenServicioSeg.currentDetalleOCS}"
                                                 value="#{BKOrdenServicioSeg.listaDetalleOCS}"
                                                 paginatorPosition="bottom" styleClass="dataTabble-seg">  

                                        <p:ajax event="rowToggle" listener="#{MBOrdenServicioSeg.verDetalleEntrada}"  />  

                                        <p:ajax event="rowSelect" listener="#{MBOrdenServicioSeg.mostrarLiquidacionComposicion}"   
                                                update=":formSeguimientoOC:tablaDetalleLiquidacion"  />  

                                        <f:facet name="header">  
                                            Detalles de Orden de Servicio.  
                                        </f:facet>  

                                        <p:column style="width:2%">  
                                            <p:rowToggler />  
                                        </p:column>  

                                        <p:column style="width:60%">  
                                            <f:facet name="header">  
                                                Articulo  
                                            </f:facet>  
                                            <h:outputText value="#{detalle.idArticulo.nombreComercial}" />  
                                        </p:column>  

                                        <p:column style="width:19%">  
                                            <f:facet name="header">  
                                                Cantidad Pedida  
                                            </f:facet>  
                                            <h:outputText value="#{detalle.cantidad}" style="float: right" >
                                                <f:convertNumber maxFractionDigits="2" minFractionDigits="2" />
                                            </h:outputText>  
                                        </p:column>  

                                        <p:column style="width:19%">  
                                            <f:facet name="header">  
                                                Cantidad Recibida  
                                            </f:facet>  
                                            <h:outputText value="#{detalle.totalRecibido}" style="float: right" >
                                                <f:convertNumber maxFractionDigits="2" minFractionDigits="2" />
                                            </h:outputText>  
                                        </p:column> 

                                        <p:rowExpansion>  
                                            <p:fieldset legend="Guias de Remisiones de Entrada" toggleable="true">
                                                <p:dataTable id="dataTablaDetalleGuiasEntrada" var="detalleGuiaE" 
                                                             value="#{BKOrdenServicioSeg.listaDetalleGREntrada}" rowIndexVar="rowIndex"
                                                             emptyMessage="No existen Guias de Entrada para esta Orden de Servicio"
                                                             paginatorPosition="bottom" styleClass="datable-busqueda"> 

                                                    <p:column id="idColumnaNum" headerText="Num." style="width: 5%"> 
                                                        <h:outputText value="#{rowIndex+1}" /> 
                                                    </p:column>

                                                    <p:column id="idColumnaArticulo" rendered="false"
                                                              headerText="Articulo"  > 
                                                        <h:outputText value="#{detalleGuiaE.articulo.nombreComercial}" /> 
                                                    </p:column>

                                                    <p:column id="idColumnaPartida" 
                                                              headerText="Partida/Lote"  > 
                                                        <h:outputText value="#{detalleGuiaE.partidaLote}" /> 
                                                    </p:column>

                                                    <p:column id="idColumnaNumGuia" 
                                                              headerText="Nº Guia"  > 
                                                        <h:outputText value="#{detalleGuiaE.guiaRemision.serie}-#{detalleGuiaE.guiaRemision.numeroGuia}" /> 
                                                    </p:column>

                                                    <p:column id="idColumnaNumFactura" 
                                                              headerText="Nº Factura"  > 
                                                        <h:outputText value="#{detalleGuiaE.guiaRemision.idFactura.serie}-#{detalleGuiaE.guiaRemision.idFactura.numeroFactura}" /> 
                                                    </p:column>

                                                    <p:column id="idColumnaUM" headerText="UM"> 
                                                        <h:outputText value="#{detalleGuiaE.tipoUnidadMinima.abrev}" /> 
                                                    </p:column>
                                                    
                                                    <p:column id="idColumnaCantPedida" rendered="#{BKOrdenServicioSeg.ordenServicioSeg.crearPartidas eq 1}"
                                                              headerText="Cant Ped"  
                                                              filterMatchMode="contains"> 
                                                        <h:outputText value="#{detalleGuiaE.cantidadPedida}" style="float: right" >
                                                            <f:convertNumber maxFractionDigits="2" minFractionDigits="2" />
                                                        </h:outputText> 
                                                    </p:column>
                                                    
                                                    <p:column id="idColumnaCantRecibida" 
                                                              headerText="Cant Rec"  
                                                              filterMatchMode="contains"> 
                                                        <h:outputText value="#{detalleGuiaE.cantidad}" style="float: right" >
                                                            <f:convertNumber maxFractionDigits="2" minFractionDigits="2" />
                                                        </h:outputText> 
                                                    </p:column>

                                                </p:dataTable>	
                                            </p:fieldset> 

                                        </p:rowExpansion>  
                                    </p:dataTable>

                                </p:column>

                            </p:row>

                            <p:row>
                                <p:column colspan="2">
                                    <p:dataTable id="tablaDetalleLiquidacion" var="detalle" 
                                                 value="#{BKOrdenServicioSeg.listaLiquidaciones}"
                                                 paginatorPosition="bottom" styleClass="dataTabble-seg">  

                                        <p:ajax event="rowToggle" listener="#{MBOrdenServicioSeg.verDetalleSalida}"  />  

                                        <f:facet name="header">  
                                            Consumo de Materiales  
                                        </f:facet>  

                                        <p:column style="width:2%">  
                                            <p:rowToggler />  
                                        </p:column>  

                                        <p:column>  
                                            <f:facet name="header">  
                                                Articulo  
                                            </f:facet>  
                                            <h:outputText value="#{detalle.nomArticulo}" />  
                                        </p:column>  

                                        <p:column style="width:32%">  
                                            <f:facet name="header">  
                                                Ingresado  
                                            </f:facet>  
                                            <h:outputText value="#{detalle.matIngresado}" style="float: right" >
                                                <f:convertNumber maxFractionDigits="2" minFractionDigits="2" />
                                            </h:outputText>   
                                        </p:column>  

                                        <p:column>  
                                            <f:facet name="header">  
                                                Usado  
                                            </f:facet>  
                                            <h:outputText value="#{detalle.matUsado}" style="float: right" >
                                                <f:convertNumber maxFractionDigits="2" minFractionDigits="2" />
                                            </h:outputText>   
                                        </p:column> 

                                        <p:column style="display:none">  
                                            <f:facet name="header">  
                                                % Merma  
                                            </f:facet>  
                                            <h:outputText value="#{detalle.porcMerma}" style="float: right" >
                                                <f:convertNumber maxFractionDigits="2" minFractionDigits="2" />
                                            </h:outputText>  
                                        </p:column> 

                                        <p:column style="display:none">  
                                            <f:facet name="header">  
                                                Merma  
                                            </f:facet>  
                                            <h:outputText value="#{detalle.merma}" >
                                                <f:convertNumber maxFractionDigits="2" minFractionDigits="2" />
                                            </h:outputText>   
                                        </p:column> 

                                        <p:column style="display:none">  
                                            <f:facet name="header">  
                                                Saldo  
                                            </f:facet>  
                                            <h:outputText value="#{detalle.saldo}" style="float: right" >
                                                <f:convertNumber maxFractionDigits="2" minFractionDigits="2" />
                                            </h:outputText> 
                                        </p:column> 

                                        <p:column>  
                                            <f:facet name="header">  
                                                Devolución  
                                            </f:facet>  
                                            <h:outputText value="#{detalle.devolucion}" style="float: right" >
                                                <f:convertNumber maxFractionDigits="2" minFractionDigits="2" />
                                            </h:outputText> 
                                        </p:column> 

                                        <p:rowExpansion>  
                                            <p:fieldset legend="Guias de Remisiones de Entrada" toggleable="true">
                                                <p:dataTable id="dataTablaDetalleGuiasEntrada" var="detalleGuiaS" 
                                                             value="#{BKOrdenServicioSeg.listaDetalleGRSalida}" rowIndexVar="rowIndex"
                                                             emptyMessage="No existen Guias de Entrada para esta Orden de Servicio" > 

                                                    <p:column id="idColumnaNum" headerText="Nº" > 
                                                        <h:outputText value="#{rowIndex+1}" /> 
                                                    </p:column>

                                                    <p:column id="idColumnaArticulo" 
                                                              headerText="Articulo"  > 
                                                        <h:outputText value="#{detalleGuiaS.articulo.nombreComercial}" /> 
                                                    </p:column>

                                                    <p:column id="idColumnaPartida" 
                                                              headerText="Partida/Lote"  > 
                                                        <h:outputText value="#{detalleGuiaS.partidaLote}" /> 
                                                    </p:column>

                                                    <p:column id="idColumnaMotivo" 
                                                              headerText="Motivo"  > 
                                                        <h:outputText value="#{detalleGuiaS.guiaRemision.parametroMotivoGuia.desParametroDet}" /> 
                                                    </p:column>

                                                    <p:column id="idColumnaNumGuia" 
                                                              headerText="Nº Guia"  > 
                                                        <h:outputText value="#{detalleGuiaS.guiaRemision.serie}-#{detalleGuiaS.guiaRemision.numeroGuia}" /> 
                                                    </p:column>

                                                    <p:column id="idColumnaUM" headerText="UM"> 
                                                        <h:outputText value="#{detalleGuiaS.tipoUnidadMinima.abrev}" /> 
                                                    </p:column>

                                                    <p:column id="idColumnaCantidad" 
                                                              headerText="Cantidad"  
                                                              filterMatchMode="contains"> 
                                                        <h:outputText value="#{detalleGuiaS.cantidad}" style="float: right" >
                                                            <f:convertNumber maxFractionDigits="2" minFractionDigits="2" />
                                                        </h:outputText> 
                                                    </p:column>

                                                </p:dataTable>	
                                            </p:fieldset> 

                                        </p:rowExpansion>  
                                    </p:dataTable>
                                </p:column>
                            </p:row>


                        </p:panelGrid> 

                        <p:panelGrid style="width:60%;margin: 10px auto;">

                            <p:row>
                                <p:column>

                                    <p:commandButton id="btnCerrar" disabled="#{BKOrdenServicioSeg.ordenServicioSeg.estadoOrden eq 'A'?false:true}"
                                                     oncomplete="confirmacionCerrar.show()"
                                                     value="Cerrar OS" />
                                </p:column>

                                <p:column>

                                    <p:commandButton id="btnAnular" disabled="#{BKOrdenServicioSeg.ordenServicioSeg.fechaCierre ne null}"
                                                     oncomplete="confirmacionAnular.show()"
                                                     value="Anular OS" />
                                </p:column>

                                <p:column>
                                    <p:commandButton action="#{MBOrdenServicio.cancelar()}" ajax="false" immediate="true" value="Cancelar"/>
                                </p:column>

                                <p:column>
                                    <p:commandButton action="#{MBOrdenServicioSeg.reporteOrdenServicioLiquidacion()}" ajax="false" value="Generar Reporte"/>
                                </p:column>
                            </p:row>	

                        </p:panelGrid>
                    </p:panel>

                    <p:confirmDialog id="dlgCerrarOrdenServicio" message="¿Esta seguro de Cerrar la Orden de Servicio?" 
                                     header="Cerrar Orden de Servicio" severity="alert" widgetVar="confirmacionCerrar">
                        <h:panelGrid style="width: auto;margin:0px auto;border:0px;padding: 0 5px" columns="2">              
                            <p:commandButton id="btnConfCerOS"  value="Si"  oncomplete="confirmacionCerrar.hide()"  
                                             action="#{MBOrdenServicioSeg.cerrarOrden()}" ajax="false" />  
                            <p:commandButton id="btnCancCerOS" value="No" onclick="confirmacionCerrar.hide()" type="button" />   
                        </h:panelGrid>
                    </p:confirmDialog>

                    <p:confirmDialog id="dlgAnularOrdenServicio" message="¿Esta seguro de Anular la Orden de Servicio?" 
                                     header="Anular Orden de Servicio" severity="alert" widgetVar="confirmacionAnular">
                        <h:panelGrid style="width: auto;margin:0px auto;border:0px;padding: 0 5px" columns="2">              
                            <p:commandButton id="btnConfAnuOS"  value="Si"  oncomplete="confirmacionAnular.hide()"  
                                             action="#{MBOrdenServicioSeg.anularOrden()}" ajax="false" />  
                            <p:commandButton id="btnCancAnuOS" value="No" onclick="confirmacionAnular.hide()" type="button" />   
                        </h:panelGrid>
                    </p:confirmDialog>
                </h:form>
            </f:view>
        </ui:define>
    </ui:composition>
</html>   